Safe removal of external device from computing device

ABSTRACT

In some embodiments a computing device includes a coupler that is able to be coupled to an external device, and an eject button to signal the computing device that a user wishes to safely uncouple the external device from the computing device. Other embodiments are described and claimed.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of co-pending U.S. patent applicationSer. No. 111637,317, filed Dec. 11, 2006, entitled “SAFE REMOVAL OFEXTERNAL DEVICE FROM COMPUTING DEVICE,” the contents of which are herebyincorporated by reference for all purposes.

TECHNICAL FIELD

The inventions generally relate to safe removal of an external devicefrom a computing device.

BACKGROUND

Non-sophisticated technology users generally do not understand thatsimply removing an external device (for example, an external storagedevice or devices, and/or external memory device or devices) from a hostcomputer can corrupt data or cause a loss of data from the device. Inmany cases, the host operating system (OS) is still performingoperations such as queuing write transactions for the disk, for example,and may not have updated the device when the user removes the devicefrom the host. Operating systems do typically provide utilities toprepare for the safe removal of devices. However, such operations arecumbersome and therefore take extra time to complete. For example, theMicrosoft Windows operating system requires a click, a double click inthe system tray, a selection from a list of devices (“which one ismine?”), a click to commence, and a click to confirm. That is, Windowstakes five mouse clicks to remove the device. And those five clicks is abest case scenario that occurs only if the user finds the utilityeasily, and selects the correct device. In Universal Serial Bus (USB)implementations, for example, these downfalls are amplified by theimplicit nature of USB devices (that they can be inserted and removed asdesired). However, for storage products, for example, this is not thecase.

Many computer users (for example, personal computer users) now use oneor more flash memory devices that connect to the computer (for example,via a USB slot) to store data. One example of such a device is referredto as USB-Disk-on-key (DOK). When using such a disk, the user easilyplugs the device into a USB-slot located on his computer (for example, aPC, a desktop, a laptop, and/or some present or future type of computingdevice). Using the operating system of the computer, the user can theneasily access the data stored on the device. When finished using theDOK, the user needs to signal the operating system that the disk isabout to be removed. In this manner, the OS will be able to flush allbuffered files targeted to this device. The method to signal the OS inMicrosoft Windows OS is by clicking the USB-devices icon in thenotification area located on the right side of the Windows task bar. Theuser must first click to select the USB actions windows, and then clickon the correct USB device, for example.

BRIEF DESCRIPTION OF THE DRAWINGS

The inventions will be understood more fully from the detaileddescription given below and from the accompanying drawings of someembodiments of the inventions which, however, should not be taken tolimit the inventions to the specific embodiments described, but are forexplanation and understanding only.

FIG. 1 illustrates a device according to some embodiments of theinventions.

FIG. 2 illustrates a procedure according to some embodiments of theinventions.

FIG. 3 illustrates a computing device according to some embodiments ofthe inventions.

FIG. 4 illustrates a computing device according to some embodiments ofthe inventions.

DETAILED DESCRIPTION

Some embodiments of the inventions relate to safe removal of an externaldevice from a computing device.

Some embodiments of the inventions relate to a physical eject buttonprovided to indicate a desire for safe remove of external devices fromcomputing devices.

In some embodiments an external device includes a coupler that is ableto couple to a computing device, and an eject button to signal thecomputing device that a user wishes to safely uncouple the coupler fromthe computing device.

In some embodiments a signal is provided at a device indicating that auser wishes to safely uncouple the device from a computing device, andan indication is provided to the computing device that the signal hasbeen provided in order to allow the computing device to ensure that itis safe for a user to uncouple the device from the computing device.

In some embodiments a system includes a computing device and an externaldevice. The external device includes a coupler that is able to couple tothe computing device. The external device also includes an eject buttonto signal the computing device that a user wishes to safely uncouple theexternal device from the computing device.

In some embodiments a computing device includes a coupler that is ableto be coupled to an external device, and an eject button to signal thecomputing device that a user wishes to safely uncouple the externaldevice from the computing device.

In some embodiments a signal is provided at a computing deviceindicating that a user wishes to safely uncouple an external device fromthe computing device, and a determination is made that it is safe for auser to uncouple the external device from the computing device inresponse to the signal.

In some embodiments a system includes a computing device and an externaldevice. The computing device includes a coupler that is able to coupleto the external device. The computing device also includes an ejectbutton to signal the computing device that a user wishes to safelyuncouple the external device from the computing device.

In some embodiments a mechanism prepares an external portable mediadevice for removal from a host system by pressing a button on thedevice. When the user presses the button, the device will signal thehost to synchronize all disk activity and un-mount the media, preparingthe media for safe removal from the host system. According to someembodiments, devices that include such features could be USB flashmemory “keys” or external hard disk drives such as USB or “Firewire”IEEE 1394 connected devices. According to some embodiments, applicationsinclude external flash memory adapters such that a pressing of a buttonmakes it safe to remove a flash memory disk. According to someembodiments, applications include media devices including music players(such as Apple iPods and/or MP3 music players) and including videoplayers. According to some embodiments, applications include any devicethat exposes itself as an external storage device when connected to ahost computer.

It is noted that consumer electronic devices and personal computers havepreviously included eject buttons, but those buttons have beenassociated with the act of physically removing the device. For example,VCRs have eject buttons for removing a video tape, DVD players have abutton associated with physically removing a DVD, and personal computershave had a button associated with removing a device such as a floppydisk, etc. Also, Apple has previously placed within its iTunes softwarea point on which to click to safely remove attached iPods. However, noelectronic devices (either computing devices or external devices) havepreviously included a physical button such as an eject button that, uponpressing the button a procedure may be started through which saferemoval of the device from the computing device may be implemented.

FIG. 1 illustrates a device 100 according to some embodiments. Althoughdevice 100 is illustrated in FIG. 1 as an external USB memory device,according to some embodiments, device 100 can be other types of devices.For example, according to some embodiments device 100 may be one or moreof a media device, an external device, an external storage device, aportable device, a storage device, a hard drive, a memory device, aflash device, a flash memory device, a USB device, a USB hub, a musicdevice such as a music player, a video device such as a video player, anIEEE 1394 (“Firewire”) device, a USB key, a USB DOK (disk on key), a USBflash memory key, flash memory card reader and/or adapter, a portablehard drive based solution, a portable media device, an iPod, a portablemusic device, and/or a portable video device.

In some embodiments device 100 includes a connector 102 (or coupler)that is, for example, insertable into, connectable with, and/or able tocouple with a computing device (for example, sometimes referred to as ahost device). The computing device is not shown in FIG. 1, but accordingto some embodiments, the computing device could be any type of computingdevice such as, for example, a desktop computer, a laptop computer, apersonal computer, a personal digital assistant (PDA), a USB hub, a cellphone, and/or any other type of computing device. In some embodimentsdevice 100 also includes an “eject” button 104. According to someembodiments, once the device 100 is coupled with a computing device (forexample, coupled using connector 102) and a user decides that they wantto disconnect the device 100 from the computing device, the user pressesthe eject button 104. In response to the pressing of the eject button104, the device 100 then sends a signal to the computing device that theuser would like to remove (for example, disconnect, or uncouple) thedevice 100 from the computing device. By placing the eject button 104 onthe device, the entire process of removing the device is simplified. Themere pressing of one button (for example, eject button 104) allows asignal to be sent to the computing device and, according to someembodiments, an operating system (OS) of the computing device may thenconfirm (in a manner similar to what is done today, for example, usingMicrosoft Windows operating system) that removal of the device 100 fromthe computing device is safe.

FIG. 2 illustrates a procedure 200 according to some embodiments. Asillustrated at the top of FIG. 2 a device 210 (for example, an externalmemory device or storage device) including a connector 212 and an ejectbutton 214 is inserted into (and/or connected or coupled with) acomputing device 220. When a user is ready to remove the device 210 fromthe computing device 220, the user presses the eject button 214 (forexample, using the finger 230 of the user). In response to the pressingof the eject button 214, the computing device 220 receives a signal thatthe user wishes to remove the device 210. The computing device 220 thenprepares for removal of the device 210 from the computing device 220(for example, using the operating system of the computing device and/orother hardware and/or software). According to some embodiments, anindication is provided (for example, on a display of the computingdevice 220) that the device 210 is ready for removal (for example,displaying “It is now safe to remove the device”). According to someembodiments this indication may be provided by the OS of the computingdevice, other software, and/or hardware. Once the user receives anindication that it is safe to remove the device 210, the user safelyremoves the device (for example, using the hand 232 of the user).

According to some embodiments, an “eject-button” is installed next to aslot (for example, a USB slot) on a computing device (for example, aneject button next to a main USB slot on the computing device, an ejectbutton next to every USB slot on the computing device, an eject buttonfor a group of USB slots on a computing device, etc.) By pressing theeject button (for example, with the thumb or finger of a user), thecomputing device (for example, the operating system of the computingdevice) receives a signal that the user wishes to unplug (and/ordisconnect and/or uncouple) an external device from the computing device(for example, an external USB device). Once the computing device hasensured that safe removal of the external device is now appropriate (forexample, using the OS, other software and/or other hardware), a signalmay be sent that it is safe to unplug the external device from thecomputing device. The electrical power of the external device is thenturned off, for example, and a light is turned off and/or the user issignaled that the external device (for example, a USB DOK) can beunplugged, disconnected, uncoupled, etc. from the computing device. Theuser is then able to safely remove the external device. According tosome embodiments, as far as the perception of the user is concerned,this process is similar to ejecting cassettes or disks, for example.Since the un-mount process (and/or disconnect, unplugging, and/oruncoupling process) takes a very short time (for example, less then asecond to flash the buffers of the external device), the user will havethe impression that the entire process happened immediately.

According to some embodiments, the user benefits from a more fluent“user experience”. The user feels more comfortable and reliable usingthe external device since he or she can see the button at every givenmoment, and can unplug it at any time. For example, when a user is usinga small external device to store daily work performed on their computingdevice, in previous implementations the user might feel annoyed whentransferring files since they will need to use the computing device tofind an icon to click on the computer (for example, by moving the mouseand spending time to get to the right point (for example, an icon withinthe status bar).

FIG. 3 illustrates a computing device 300 according to some embodiments.In some embodiments computing device 300 includes one or more externaldevice slots 302 (for example, USB slots) and one or more eject buttons304. Although the computing device 300 illustrated in FIG. 3 appears asa desktop computer, for example, in some embodiments computing device300 may be a desktop computer, a laptop computer, a personal digitalassistant (PDA), a personal computer (PC), and/or any other type ofcomputing device, for example. In some embodiments computing device 300can also include other devices such as, for example, a floppy drive 306and/or a disk drive 308 (for example, a CD drive and/or a DVD drive).

FIG. 4 illustrates a computing device 400 according to some embodiments.In some embodiments computing device 400 includes one or more externaldevice slots 402 (for example, USB slots) and one or more eject buttons404. Although the computing device 400 illustrated in FIG. 4 appears asa laptop computer, for example, in some embodiments computing device 400may be a desktop computer, a laptop computer, a personal digitalassistant (PDA), a personal computer (PC), and/or any other type ofcomputing device, for example. In some embodiments computing device 400can also include other devices such as, for example, a floppy driveand/or a disk drive (for example, a CD drive and/or a DVD drive).

Although the computing device 300 illustrated in FIG. 3 shows twoexternal device slots 302 and two eject buttons 304, and the computingdevice 400 illustrated in FIG. 4 shows two external device slots 402 andone eject button 404, it is recognized that computing device 300 and/orcomputing device 400 can include according to some embodiments anynumber of external device slots and any number of eject buttons, andthat the number of external device slot and the number of eject buttonsneed not be the same. Further, according to some embodiments, theexternal device slots and/or the eject buttons need not be located inthe same area of the computing device as each other, and external deviceslots and/or eject buttons can be located anywhere on the computingdevice. For example, one or more external device slots could also be onthe back of the computing device (not illustrated in FIG. 3 or in FIG.4), either with one or more eject buttons near these external deviceslots or not near these external device slots. In some embodiments, oneeject button is provided for all external device slots or type ofexternal device slots. For example, according to some embodiments acomputing device has one eject button for all USB slots and one ejectbutton for all IEEE 1394 (“Firewire”) slots. According to someembodiments, a computing device has one eject button for external deviceslots in one area of the computing device (for example, in the front,the side, the top, etc.) and one eject button for external device slotsin another area of the computing device (for example, in the back of thecomputing device), and/or one eject button for slots on one portion (forexample, the top or middle) of the front of the computing device and oneeject button for slots on another portion of the front of the computingdevice. Many different embodiments include many different combinationsof different external device slots and eject buttons.

According to some embodiments an “Eject desire” (such as an “Ejectbutton event”) is detected and a signal is sent to remove (disconnect,uncouple, etc.) an external device from a computing device (for example,a signal is sent to the OS of the computing device). According to someembodiments, the OS (for example, the OS of the computing device),software, and/or hardware verifies that it is safe to remove theexternal device (for example, verifying that all buffer caches werewritten to the external device), and then, for example un-mount thedevice from its file system. The un-mount (or removal) process takes avery short time if no problems arise. If problems do arise it istypically not a correctable problem, and removal of the external deviceis needed anyway. This short un-mount (or removal) duration (usuallyless than a second), will not be noticed by the user, and the user willhave the impression of a fluent and easy process.

According to some embodiments, when the OS, software and/or hardware“removes” the external device, electricity is removed from the externaldevice (for example, using Windows XP), and/or a small light on theexternal device is turned off. According to some embodiments, theturning off of a small light on the external device is a sign to theuser that it is safe to remove the connection, coupling, etc. betweenthe computing device and the external device (for example, by removingthe external device from a slot on the computing device).

According to some embodiments, detecting an “Eject desire” (desire ofthe user to safely remove the external device from the computing device,for example) such as detecting an “Eject button event”, and providing asignal (for example, to the OS, software, and/or hardware of thecomputing device) can be implemented in different ways, many of whichare simple and relatively inexpensive.

According to some embodiments an I/O Controller Hub (Input/OutputController Hub or ICH) may be a semiconductor device (for example, anICH chip, or “South Bridge”). The ICH is typically the main interface ofa computing device to I/O devices such as Integrated Drive Electronics(IDE) devices and Ethernet devices, for example. According to someembodiments, a detection of an “Eject Desire” can be connected to a pinof the ICH (for example, pin of the ICH is coupled to an eject buttoneither directly or indirectly). According to some embodiments, a pin ofthe ICH is polled by the OS or signaled by an interrupt that the pin hasbeen asserted. The OS can then “un-mount” (remove) the external device,for example by removing provision of electricity to the external device,turning off a light on the external device and/or on the computingdevice, providing a statement on a display of the computing device,and/or otherwise providing a signal to the user that the external devicemay be removed (physically or otherwise) from the computing device.

According to some embodiments an Advanced Systems Format (ASF)legacy-device is a small device which monitors specific parameter in aPC chassis, like temperature and/or fan speed, etc. These devices reporttheir status, for example, when polled through the SMBus (SystemManagement Bus). According to some embodiments applications and/ordrivers poll these devices and report them to the user. According tosome embodiments, a button such as an eject button may be implemented asan ASF legacy device which can be polled by an SMBus driver, causing theOS to un-mount (remove, etc.) an external device.

According to some embodiments an eject feature allows a user toconveniently and intuitively remove safely an external device from acomputing device. According to some embodiments a user simply uses anexternal device which requires assurance of safe removal in a mannerthat is the same way a user uses a diskette, for example (for example,pushing a button to eject). The user does not need to look for a mouse,drag it to the task bar, wait for the correct device window to open,click it and wait for approval. The user merely presses an eject button,which may be located in a convenient place on the computing devicechassis, display, panel, etc., and/or on the external device itself.

In addition, according to some embodiments an eject button is used formany different types of external devices (for example, many differenttypes of USB related devices). For example, according to someembodiments the external device may be a device (for example, a USBdevice) that uses DC power (for example, in the USB slot) fornon-computing elements (for example, lamps, cooling fans, etc.) An ejectbutton may be used according to some embodiments by such a product forsome user interface feature or features (for example, some userinterface such as switch on/off, change speed, change light color etc.)

Although some embodiments have been described herein as removing,disconnecting, uncoupling, etc. external devices from a computingdevice, according to some embodiments these particular terms areintended to encompass many different arrangements between a computingdevice and an external device. For example, terms such as removing,disconnecting, uncoupling, etc. as used herein are anticipated toencompass any type of removal or physical, electrical, etc. connectionor coupling between a computing device and an external device. Forexample, according to some embodiments, the coupling between thecomputing device and the external device may be a wireless connection(for example, via WiFi or WiMax, etc.). In such embodiments, forexample, an eject button on the computing device, on the externaldevice, and/or some other eject button may be used to provide the signalthat a safe removal of the connection (such as a wireless connection)between the computing device and the external device is desired by auser, for example.

Although some embodiments have been described herein as using externaldevices such as USB devices, according to some embodiments theseparticular implementations may not be required. According to someembodiments, any type of device or combination of devices may be used,including but not limited to an external USB memory device, a mediadevice, an external device, an external storage device, a portabledevice, a storage device, a hard drive, a memory device, a flash device,a flash memory device, a USB device, a USB hub, a music device such as amusic player, a video device such as a video player, an IEEE 1394(“Firewire”) device, a USB key, a USB DOK (disk on key), a USB flashmemory key, a flash memory card reader and/or adapter, a portable harddrive based solution, a portable media device, an iPod, a portable musicdevice, and/or a portable video device.

In some embodiments the computing device is a USB hub, and/or in someembodiments the external device is a USB hub. In some embodiments adevice (for example, a USB hub) is included between the computing deviceand the external device. In some such embodiments, for example, an ejectbutton is included on the computing device, on the device between thecomputing device and the USB device (for example, a USB hub), and/or onthe external device.

Although some embodiments have been described in reference to particularimplementations, other implementations are possible according to someembodiments. Additionally, the arrangement and/or order of circuitelements or other features illustrated in the drawings and/or describedherein need not be arranged in the particular way illustrated anddescribed. Many other arrangements are possible according to someembodiments.

In each system shown in a figure, the elements in some cases may eachhave a same reference number or a different reference number to suggestthat the elements represented could be different and/or similar.However, an element may be flexible enough to have differentimplementations and work with some or all of the systems shown ordescribed herein. The various elements shown in the figures may be thesame or different. Which one is referred to as a first element and whichis called a second element is arbitrary.

In the description and claims, the terms “coupled” and “connected,”along with their derivatives, may be used. It should be understood thatthese terms are not intended as synonyms for each other. Rather, inparticular embodiments, “connected” may be used to indicate that two ormore elements are in direct physical or electrical contact with eachother. “Coupled” may mean that two or more elements are in directphysical or electrical contact. However, “coupled” may also mean thattwo or more elements are not in direct contact with each other, but yetstill co-operate or interact with each other.

An algorithm is here, and generally, considered to be a self-consistentsequence of acts or operations leading to a desired result. Theseinclude physical manipulations of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical ormagnetic signals capable of being stored, transferred, combined,compared, and otherwise manipulated. It has proven convenient at times,principally for reasons of common usage, to refer to these signals asbits, values, elements, symbols, characters, terms, numbers or the like.It should be understood, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities.

Some embodiments may be implemented in one or a combination of hardware,firmware, and software. Some embodiments may also be implemented asinstructions stored on a machine-readable medium, which may be read andexecuted by a computing platform to perform the operations describedherein. A machine-readable medium may include any mechanism for storingor transmitting information in a form readable by a machine (e.g., acomputer). For example, a machine-readable medium may include read onlymemory (ROM); random access memory (RAM); magnetic disk storage media;optical storage media; flash memory devices; electrical, optical,acoustical or other form of propagated signals (e.g., carrier waves,infrared signals, digital signals, the interfaces that transmit and/orreceive signals, etc.), and others.

An embodiment is an implementation or example of the inventions.Reference in the specification to “an embodiment,” “one embodiment,”“some embodiments,” or “other embodiments” means that a particularfeature, structure, or characteristic described in connection with theembodiments is included in at least some embodiments, but notnecessarily all embodiments, of the inventions. The various appearances“an embodiment,” “one embodiment,” or “some embodiments” are notnecessarily all referring to the same embodiments.

Not all components, features, structures, characteristics, etc.described and illustrated herein need be included in a particularembodiment or embodiments. If the specification states a component,feature, structure, or characteristic “may”, “might”, “can” or “could”be included, for example, that particular component, feature, structure,or characteristic is not required to be included. If the specificationor claim refers to “a” or “an” element, that does not mean there is onlyone of the element. If the specification or claims refer to “anadditional” element, that does not preclude there being more than one ofthe additional element.

Although flow diagrams and/or state diagrams may have been used hereinto describe embodiments, the inventions are not limited to thosediagrams or to corresponding descriptions herein. For example, flow neednot move through each illustrated box or state or in exactly the sameorder as illustrated and described herein.

The inventions are not restricted to the particular details listedherein. Indeed, those skilled in the art having the benefit of thisdisclosure will appreciate that many other variations from the foregoingdescription and drawings may be made within the scope of the presentinventions. Accordingly, it is the following claims including anyamendments thereto that define the scope of the inventions.

What is claimed is:
 1. A computing device comprising: a coupler that isable to be coupled to an external device; and an eject button to signalthe computing device that a user wishes to safely uncouple the externaldevice from the computing device.
 2. The computing device of claim 1,wherein the external device is at least one of a media device, aportable device, a storage device, a hard drive, a memory device, aflash device, a flash memory device, a USB device, a USB hub, a musicdevice, a video device, or an IEEE 1394 device.
 3. The computing deviceof claim 1, wherein the eject button is a physical button on thecomputing device.
 4. The computing device of claim 1, wherein thecoupler is a slot in the computing device.
 5. The computing device ofclaim 1, wherein the computing device to determine that it is safe for auser to uncouple the external device from the computing device inresponse to the signal.
 6. The computing device of claim 5, thecomputing device to provide a signal to the user that it is safe touncouple the external device from the computing device.
 7. The computingdevice of claim 6, wherein the signal to the user is provided on atleast one of a light on the computing device, a light on the externaldevice, or a display on the computing device.
 8. The computing device ofclaim 1, the computing device further including an operating system todetermine that it is safe for a user to uncouple the external devicefrom the computing device in response to the signal.
 9. The computingdevice of claim 1, the computing device further including anInput/Output Controller Hub to determine that it is safe for a user touncouple the external device from the computing device in response tothe signal.
 10. The computing device of claim 1, wherein the computingdevice is at least one of a desktop computer, a laptop computer, or aUSB hub.
 11. A method comprising: providing a signal at a computingdevice indicating that a user wishes to safely uncouple an externaldevice from the computing device; and determining that it is safe for auser to uncouple the external device from the computing device inresponse to the signal.
 12. The method of claim 11, wherein the signalis provided in response to a computing device eject button pressed bythe user.
 13. The method of claim 11, further comprising providing asignal to the user that it is safe to uncouple the external device fromthe computing device.
 14. A system comprising: a computing device; andan external device; wherein the external device is able to be coupled tothe computing device, the computing device further including a couplerthat is able to be coupled to the external device, and an eject buttonto signal the computing device that a user wishes to safely uncouple theexternal device from the computing device.
 15. The system of claim 14,the computing device to determine that it is safe to uncouple theexternal device from the computing device in response to the signal. 16.The system of claim 15, the computing device to provide an indication tothe user that it is safe to uncouple the external device from thecomputing device.
 17. The system of claim 14, wherein the externaldevice is at least one of a media device, a portable device, a storagedevice, a hard drive, a memory device, a flash device, a flash memorydevice, a USB device, a USB hub, a music device, a video device, or anIEEE 1394 device.
 18. The system of claim 13, wherein the computingdevice is at least one of a desktop computer, a laptop computer, or aUSB hub.